/*
 * @Author: HeAo
 * @Date: 2022-08-14 16:24:19
 * @LastEditTime: 2022-08-17 19:19:07
 * @LastEditors: HeAo
 * @Description: 
 * @FilePath: \JavaScripe\day-06\07-迭代方法.js
 * 别乱动！
 */


// // 1、every() 方法用于检测数组所有元素是否都符合指定条件（写在函数中）。—— 与（全真才真）
// var numArr = [17, 29, 30, 18, 60]
// // item 当前要检测的数组中的每一个元素
// var res = numArr.every(function (item, index, arr) {
//   // 设置一个条件
//   return item >= 18
// })
// console.log(res); //false

// // 2、some() 方法用于检测数组中的元素是否有一个或多个满足指定条件（函数提供）。 —— 或（有一真则真）
// var numArr = [17, 29, 30, 18, 60]
// var res = numArr.some(function (item, index, arr) {
//   // 设置一个条件
//   return item >= 18
// })
// console.log(res); //true

// 对象数组
// 过滤出年龄大于18岁的同学
// var stuArr = [
//   { id: 1, name: 'zhangsan', age: 17 },
//   { id: 2, name: 'terry', age: 22 },
//   { id: 3, name: 'larry', age: 32},
// ]
// // filter 返回的是一个数组 数组中的数据是满足条件的数据
// var res = stuArr.filter(function (item) {
//   return item.age >= 18
// })
// console.log(res); 

// // map()
// var numbers = [4, 9, 16, 25];
// var res = numbers.map(function (item) {
//   return item + 4
// })
// console.log(res); //[ 8, 13, 20, 29 ]

// forEach()
var numbers = [4, 9, 16, 25];
numbers.forEach(function (item, index) {
  console.log(item + '-' + index);
})


// prototype里面没有满足我们需求的方法 这个方法可能很多人都会用到
// myPush 向数组末尾添加一个或多个元素 返回数组的长度
var numbers = [4, 9, 16, 25];
Array.prototype.myPush = function () {
  // [Arguments] { '0': 123, '1': 345 }
  for (var i = 0; i < arguments.length; i++) {
    this[this.length] = arguments[i]
  }
  return this.length
}
numbers[numbers.length] = 70
// // console.log(numbers);
var res = numbers.myPush(123, 345)
// console.log(res);
// console.log(numbers);